<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div id="wrap">
    <button class="btn">新增</button>
    <div class="list">
      <li class="first">01</li>
      <li>02</li>
      <li class="mid">03</li>
      <li>04</li>
      <li>05</li>
      <li class="last">06</li>
    </div>
  </div>
</body>
<script>
  var list = document.querySelector(".list");

  // 父元素=>子代元素
  var liList = list.getElementsByTagName("li");
  console.log(liList);   // HTMLCollection 元素的集合

  var liList = document.querySelectorAll(".list li");
  console.log(liList);   // NodeList 节点的集合

    // 伪数组
    // 有数组的特性 (1. length 2. 可以通过下标取值, 下标赋值要看特性 3. 可以被循环遍历),但是不能使用数组的拓展方法
    // arguments  HTMLCollection  NodeList


    // console.log(liList.length);
    // console.log(liList[0]);
    // for(var i = 0;i<liList.length;i++){
    //     console.log(liList[i]);
    // }

    // 报错  伪数组不存在push方法
    // liList.push(100);
    // console.log(liList);

    // 伪数组转真数组?   => 得到一个和伪数组元素相同的真数组?
    // (1) 新建真数组,遍历伪数组将每个元素放到新数组中
    // var arr = [];
    // for(var i = 0;i<liList.length;i++){
    //     arr.push(liList[i]);
    // }
    // console.log(arr, Array.isArray(arr));
    // arr[0].innerText="123123123123";

    // (2) 构造函数Array的方法 Array.from() (ES6)
    // Array.from()  传入一个伪数组 返回对应的真数组
    // var arr = Array.from(liList);
    // console.log(arr, Array.isArray(arr));


    //  
    // var arr = [];
    // for(var i = 0;i<liList.length;i++){
    //     var item = liList[i];
    //     var clone = item.cloneNode(true);
    //     arr.push(clone);
    // }
    // console.log(arr, Array.isArray(arr));
    // arr[0].innerText="123123123123";



</script>

</html>